home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <exec/exec.h>
- #include <exec/types.h>
- #include "dh0:code/code20/defines.h"
- #define ACCESS_READ -2
- struct Commands cmds;
- char BBSLoc[200];
- char Temp[200];
- int nodes=0;
- void sr(char *str);
- void BBS(void);
- void Configs();
- void CheckUlPaths(char *str);
- void CheckPaths(char *str);
- void CheckNeeded(char *str);
- int Ndirs(char *str);
- void CheckConfig(char *str,int node);
- void CheckNode(char *str);
- void Nodes(void);
- int TLock(char *str);
- BOOL WAit=FALSE;
- char WAitStr[256];
- int end(int nothing);
- int end(int nothing)
- {
- if(WAit)
- {
- printf("Press RETURN to continue\n");
- gets(WAitStr);
- }
- exit(0);
- }
- main(int argc,char *argv[])
- {
- FILE *fi;
- if(argc<3 || argc>4)
- {
- printf("AX Validation v1.1 written by ByteMaster\n");
- printf("This is an AmiExpress 1.1w+ utility\n");
- printf("Usage: AXVal <bbs location> <nodes> [WAit]\n");
- printf(" ie: AXVal BBS: 9 WAit\n");
- printf("\n");
- end(0);
- }
- if(argc==4) WAit=TRUE;
- printf("AX Validation v1.0 written by Joseph Hodge\n");
- strcpy(BBSLoc,argv[1]); sr(BBSLoc); strupr(BBSLoc);
- nodes=atoi(argv[2]);
- BBS();
- Configs();
- Nodes();
- printf("\n\nBBS structure appears to be intact!\n\n");
-
- end(0);
- }
-
- void BBS(void)
- {
- char t[200];
- printf("-> Searching for BBS Location\n");
- if(!TLock(BBSLoc))
- {
- printf("Error! Can't locate BBS location %s\n",BBSLoc);
- end(0);
- }
- printf("\n");
- sprintf(t,"%sZoom",BBSLoc);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%sScreens",BBSLoc);
- if(!TLock(t))
- {
- printf(" WARNING! Can't locate %s\n",t);
- }
- sprintf(t,"%sScreens/BullBatch",BBSLoc);
- if(!TLock(t))
- {
- printf(" WARNING! Can't locate %s\n",t);
- }
- sprintf(t,"%sCommands",BBSLoc);
- if(!TLock(t))
- {
- printf(" WARNING! Can't locate %s\n",t);
- }
- sprintf(t,"%sUser.Data",BBSLoc);
- if(!TLock(t))
- {
- printf("SERIOUS WARNING! can't locate %s\n",t);
- }
- sprintf(t,"%sUser.Keys",BBSLoc);
- if(!TLock(t))
- {
- printf("SERIOUS WARNING! can't locate %s\n",t);
- }
-
- }
- void Nodes(void)
- {
- char t[200];
- register int i=0;
- printf("--> Scanning for node directories\n");
- while(i<nodes)
- {
- sprintf(t,"%sNode%d",BBSLoc,i);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- }
- else
- {
- CheckNode(t);
- }
- i++;
- }
- printf("\n");
- }
- void CheckNode(char *str)
- {
- char t[200];
- sprintf(t,"%s/Work",str);
- if(!TLock(t))
- {
- printf("Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%s/PlayPen",str);
- if(!TLock(t))
- {
- printf("Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%s/Screens",str);
- if(!TLock(t))
- {
- printf("WARNING! Can't locate %s\n",t);
- }
- sprintf(t,"%s/Screens/BullBatch",str);
- if(!TLock(t))
- {
- printf("WARNING! Can't locate %s\n",t);
- }
- sprintf(t,"%s/ComputerList",str);
- if(!TLock(t))
- {
- printf("Error! Can't locate %s\n",t);
- end(0);
- }
-
- }
- void Configs()
- {
- register int i=0;
- printf("-> Searching for Config files\n");
- while(i<nodes)
- {
- sprintf(Temp,"%sconfig%d",BBSLoc,i);
- if(!TLock(Temp))
- {
- printf(" Can't locate %s\n",Temp);
- end(0);
- }
- else CheckConfig(Temp,i);
- i++;
- }
- printf("\n");
- }
-
- void CheckConfig(char *str,int node)
- {
- FILE *fi;
- char Temp1[200];
- register int i=0;
- printf("--> Checking Config%d Conferences\n",node);
- fi=fopen(str,"rb");
- if(fi==NULL)
- {
- printf(" Can't open Config%d\n",node);
- end(0);
- }
- fread((APTR)&cmds,sizeof(struct Commands),1,fi);
- fclose(fi);
- strcpy(Temp1,cmds.BBSLoc);
- strupr(Temp1); sr(Temp1);
- if(strcmp(BBSLoc,Temp1))
- {
- printf(" Config%d has invalid BBS Location\n",node);
- end(0);
- }
- while(i<9)
- {
- if(cmds.ConfLoc[i][0]!='\0')
- {
- printf(" Checking Conference #%d - %s\n",i+1,cmds.ConfName[i]);
- if(!TLock(&cmds.ConfLoc[i]))
- {
- printf(" Error! Can't locate conference %d directory %s\n",i,cmds.ConfName[i]);
- end(0);
- }
- else
- {
- CheckNeeded(&cmds.ConfLoc[i]);
- if(Ndirs(&cmds.ConfLoc[i]))
- {CheckPaths(&cmds.ConfLoc[i]);
- CheckUlPaths(&cmds.ConfLoc[i]);}
- }
- }
- i++;
- }
- }
- int Ndirs(char *str)
- {
- char t[200];
- FILE *fi;
- register int i;
- register int j;
- sprintf(t,"%sndirs",str);
- if(TLock(t))
- {
- fi=fopen(t,"r");
- fgets(t,80,fi);
- fclose(fi);
- i=atoi(t);
- j=1;
- while(j<=i)
- {
- sprintf(t,"%sdir%d",str,j);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- j++;
- }
- return(1);
- }
- return(0);
- }
- void CheckNeeded(char *str)
- {
- char t[200];
- sprintf(t,"%sUpload",str);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%smsgbase",str);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%slcfiles",str);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- sprintf(t,"%sPartUpload",str);
- if(!TLock(t))
- {
- printf(" Error! Can't locate %s\n",t);
- end(0);
- }
- }
-
- void CheckPaths(char *str)
- {
- char t[200];
- char Path[200];
- FILE *fi;
- sprintf(Path,"%spaths",str);
- if(!TLock(Path))
- {
- printf(" Error! Can't locate %s\n",Path);
- end(0);
- }
- fi=fopen(Path,"r");
- if(fi==NULL)
- {
- printf(" Error! Can't open file %s\n",Path);
- end(0);
- }
- while(fgets(t,80,fi)!=NULL)
- {
- sr(t);
- if(t[strlen(t)-1]!='/' && t[strlen(t)-1]!=':')
- {
- printf(" Error!, Directory paths in the paths file must end with a '/' or ':'\n");
- end(0);
- }
- if(strlen(t)>1 && t[strlen(t)-1]=='/')
- {
- t[strlen(t)-1]='\0';
- }
-
- if(!TLock(t))
- {
- printf(" Error! Can't locate Paths directory %s\n",t);
- fclose(fi);
- end(0);
- }
- }
- fclose(fi);
- }
- void CheckUlPaths(char *str)
- {
- char t[200];
- char Path[200];
- FILE *fi;
- sprintf(Path,"%sulpaths",str);
- if(!TLock(Path))
- {
- return;
- }
- fi=fopen(Path,"r");
- if(fi==NULL)
- {
- printf(" Error! Can't open file %s\n",Path);
- end(0);
- }
- while(fgets(t,80,fi)!=NULL)
- {
- sr(t);
- if(t[strlen(t)-1]!='/' && t[strlen(t)-1]!=':')
- {
- printf(" Error!, Directory paths in the Ulpaths file must end with a '/' or ':'\n");
- end(0);
- }
-
- if(strlen(t)>1 && t[strlen(t)-1]=='/')
- {
- t[strlen(t)-1]='\0';
- }
- if(!TLock(t))
- {
- printf(" Error! Can't locate Paths directory %s\n",t);
- fclose(fi);
- end(0);
- }
- }
- fclose(fi);
- }
- void sr(char *str)
- {
- register int i;
- i=strlen(str)-1;
- while(i>-1)
- {
- if(*(str+i)<=32) *(str+i)='\0'; else break;
- i--;
- }
- }
-
- int TLock(char *str)
- {
- long lock;
- if(lock=Lock(str,ACCESS_READ))
- {
- UnLock(lock); return(1);
- }
- return(0);
- }